您现在的位置是:首页 >PHP网站首页PHP
PHP上传图片
- 学无止境
- 2019-02-23
- 5770 已阅读
- 1
简介经常使用框架会很容易忘记原生的文件上传方法。虽然知道就是几个步骤,但是具体实现方法恐怕早已忘却。呵呵,别太搞笑了。根本都不难!!!
PHP上传图片函数
/**
*上传函数
*@param array $file 上传文件的信息
*@param array $typeAllow 允许的上传类型
*@param int $size 允许上传文件的大小 0:表示不限制大小
*@param string $path 保存文件的路径
*@param array $rec 保存返回的信息
*/
function uploaded($file, $path ='./uploads', $typeAllow = array('image/jpeg'), $size = 0)
{
//设置返回值的默认标示
$rec = array('info' => '', 'error' => false);
//判断错误号
if ($file['error'] > 0) {
switch ($file['error']) {
case 1: $info = '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值';break;
case 2: $info ='上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值';break;
case 3: $info ='文件只有部分被上传';break;
case 4: $info ='没有文件被上传';break;
case 6: $info ='找不到临时文件夹';break;
case 7: $info ='文件写入失败';break;
default: $info = '未知错误';
}
$rec['info'] = $info;
return $rec;
}
//处理一下保存路径
$savePath = rtrim($path, '/').'/'.date('Y/m/d/');
//echo $savePath;
//判断目录是否存在
if (!file_exists($savePath)) {
//创建目录
mkdir($savePath, 0777, true);
}
//判断是否是允许的类型
if (!in_array($file['type'], $typeAllow)) {
$rec['info'] = '文件类型不被允许';
return $rec;
}
//判断上传文件的大小
if ($size > 0 && $file['size'] > $size) {
$rec['info'] = '文件过大';
return $rec;
}
//得到文件类型
$ext = pathinfo($file['name'], PATHINFO_EXTENSION);
//随机一下文件名
$fileName = date('YmdHis').mt_rand(1000, 9999).'.'.$ext;
//拼接完成的上传路径
$savaName = rtrim($savePath, '/').'/'.$fileName;
//执行上传
if (is_uploaded_file($file['tmp_name'])) {
//上传文件
if (move_uploaded_file($file['tmp_name'], $savaName)) {
$rec['error'] = true;
$rec['info'] = $savaName;
return $rec;
} else {
$rec['info'] = '上传失败';
return $rec;
}
} else {
$rec['info'] = '上传方式不合法';
return $rec;
}
}
$info = uploaded($_FILES['file']);
var_dump($info);
if ($info['error']) {
//图片缩放
echo '上传成功';
} else {
echo '上传失败';
}


